The approaches described in this section could be pursued but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Portable handheld devices such as smartphones, tablet computers, and other mobile devices are widely used around the world. Many individuals own mobile devices and use them for a variety of purposes. These mobile devices can enable both cellular and Wi-Fi® communication and, accordingly, provide users with the ability to access content almost instantly. In particular, these mobile devices can run application software, also known as “mobile applications,” “mobile apps,” or simply “apps,” facilitate user access to various functionalities of these mobile devices or content stored on the mobile devices or on a remote server.
Mobile applications have been conventionally utilized for general productivity and information retrieval such as e-mail, calendar, contacts, and weather information. However, public demand and the availability of developer tools have driven rapid expansion into other categories such as mobile games, navigation and location-based services, banking, order-tracking, fitness related monitoring and tracking, ticket purchases, and so forth. Mobile applications typically are available through application distribution platforms, such as Apple App Store®, Google Play®, Windows Phone Store®, and Blackberry App World®, which are specific to corresponding mobile devices such as an iPhone®, Android® phone, Windows Phone®, and Blackberry®.
The diversity of these devices presents a considerable challenge to those who want to develop content for as wide an audience as possible because mobile devices can run different operating systems (OS); this requires different versions of mobile application to be written for each OS. In other words, software developers need to create hardware/OS platform specific mobile applications for each type of mobile device. For example, one should use Objective C language to create an application for iOS® devices (e.g., iPhone®), Java® to create an application for Android® devices, and .NET® language for Windows® phones.
Traditionally, mobile applications are enterprise oriented, meaning that a mobile application is tied to specific backend resources and services of an enterprise. For example, a mobile application for purchasing movie tickets uses web and cloud resources, and service employed and controlled by a specific enterprise. This approach can significantly limit the utility of mobile applications as well as limit the ability of developers or vendors of the mobile applications to customize the mobile applications for various enterprise needs.
In addition, it can be prohibitively costly for a small enterprise to develop and maintain necessary backend services in order to compete with bigger enterprises. Additionally, enterprise mobile applications can be vulnerable to hacking or illegal data access due to inadequate security. In many instances, enterprise mobile applications are not protected by conventional enterprise security solutions.
Thus, enterprise mobile applications can be of limited use while their development is costly and time consuming. Furthermore, enterprise mobile applications are typically not able to share data with various cloud-based services or resources.